#include <iostream>
#include <vector>
#include <functional>

#define TO_SUBMIT

#ifndef TO_SUBMIT
template<typename Iterator>
std::ostream& print(std::ostream& os, Iterator begin, Iterator end)
{
	os << "[";
	while (begin != end)
	{
		os << *begin;
		if (begin + 1 != end)
			os << ", ";
		
		++begin;
	}
	os << "]\n";

	return os;
}
#endif

template <typename Type, typename Iterator, typename Compare>
void quick_sort(Iterator begin, Iterator end, const Compare& less)
{
	if (end == begin + 1 || end == begin)
		return;
	
	Iterator old_begin(begin), old_end(end);
	Type tmp(*begin);

	--end;
	while (begin != end)
	{
		while (begin != end && !less(*end, tmp))
			--end;
		*begin = *end;
		
		while (begin != end && !less(tmp, *begin))
			++begin;
		*end = *begin;
	}
	*end = tmp;

	quick_sort<Type, Iterator, Compare>(old_begin, end, less);
	quick_sort<Type, Iterator, Compare>(begin + 1, old_end, less);
}

int main()
{
	std::vector<int> input_list;
	int n, input_digit;

	std::cin >> n;

	while (n--)
	{
		std::cin >> input_digit;
		input_list.push_back(input_digit);
	}

	quick_sort<int, std::vector<int>::iterator, std::less<int> >
		(input_list.begin(), input_list.end(), std::less<int>());
	
	for (std::vector<int>::size_type i = 0; i != input_list.size(); ++i)
	{
		std::cout << input_list[i];
		if (i + 1 != input_list.size())
			std::cout.put(' ');
	}

	return 0;
}